package com.nineclock.system.controller;

import com.nineclock.api.system.SysCompanyContactControllerApi;
import com.nineclock.common.entity.Result;
import com.nineclock.system.dto.SysCompanyContactConfigDTO;
import com.nineclock.system.service.SysCompanyContactConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author 黑马程序员
 * @Company http://www.ithiema.com
 * @Version 1.0
 */
@RestController
@RequestMapping("/companyContact")
public class SysCompanyContactConfigController implements SysCompanyContactControllerApi {

    @Autowired
    SysCompanyContactConfigService companyContactConfigService;

    @PostMapping("/config")
    public Result addCompanyContactConfig(@RequestBody SysCompanyContactConfigDTO companyContactConfigDTO){
        companyContactConfigService.addCompanyContactConfig(companyContactConfigDTO);
        return Result.success();
    }

    @Override
    @GetMapping("/config")
    @PreAuthorize("hasRole('ADMIN')")
    public Result<List<SysCompanyContactConfigDTO>> queryCompanyContactConfig() {
        List<SysCompanyContactConfigDTO> companyContactConfigDTOList = companyContactConfigService.queryCompanyContactConfig();
        return Result.success(companyContactConfigDTOList);
    }

    @Override
    @PutMapping("/config/{id}/{status}")
    @PreAuthorize("hasAuthority('organization')")
    public Result updateCompanyContactConfig(@PathVariable Long id,@PathVariable Short status) {
        companyContactConfigService.updateCompanyContactConfig(id, status);
        return Result.success();
    }
}
